#ifndef BASE_COMMAND_LISTENER_H
#define BASE_COMMAND_LISTENER_H

#include "CommandTemplate.h"

namespace mp_base{
	namespace console{

		class CommandListener : public CommandTemplate
		{
			typedef void(*ListenerFunction)(const CommandTemplate& cmd);
		public:
			CommandListener() : CommandTemplate() { m_listenrFcn = NULL; }
			void RegisterListenerFcn(ListenerFunction proc)
				{ m_listenrFcn = proc; }
			const ListenerFunction GetListenerFcn() const
				{ return m_listenrFcn; }
		private:
			//Additional link to function
			ListenerFunction	m_listenrFcn;
		};
		typedef boost::shared_ptr<CommandListener> spCommandListener;
	}
}

#endif